Proposing a copy area in a document

ABSTRACT

Information on a cursor or pointer position is obtained, indicating a first content on a document displayed on a screen. A plurality of second contents are retrieved from a history information, each of the second contents comprising the first content. The history information comprises sets of contents, each of the sets comprising a content in the document which was copied by one or more users, and position information of this content. The sets are ranked in a predetermined order. A copy area is proposed based on one or more second contents in the predetermined order among the retrieved second contents.

BACKGROUND

The present disclosure relates to a text editing interface and morespecifically, to proposing a copy area in a document.

Many computing devices provide a basic copying function wherein aportion of text, a graphic, a format, etc. may be “lifted” from aparticular page or window and replicated to another. This is generallyaccomplished by selecting the desired portion of text, graphic, file,etc. using a mouse cursor or other pointer to indicate each a “startcopying” and “stop copying” point. By selecting the copy function, thetext, graphic, etc. indicated by the mouse selection is moved to a“clipboard.” The clipboard a function provided by most operatingsystems, which is used to hold copied content until the user indicatesit should be replicated.

SUMMARY

According to one aspect of an embodiment of the present disclosure, thepresent disclosure provides a computer-implemented method for proposinga copy area in a document.

Information on a cursor or pointer position is obtained, indicating afirst content on a document displayed on a screen. A plurality of secondcontents are retrieved from a history information, each of the secondcontents comprising the first content. The history information comprisessets of contents, each of the sets comprising a content in the documentwhich was copied by one or more users, and position information of thiscontent. The sets are ranked in a predetermined order. A copy area isproposed based on one or more second contents in the predetermined orderamong the retrieved second contents.

According to another aspect of an embodiment of the present disclosure,a computer system comprising a computer readable storage medium storinga program of instructions executable by the computer system to performone or more methods described herein also may be provided.

According to another aspect of an embodiment of the present disclosure,a computer program product comprising a computer readable storage mediumstoring a program of instructions executable by the computer system toperform one or more methods described herein also may be provided.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawings included in the present application are incorporated into,and form part of, the specification. They illustrate embodiments of thepresent disclosure and, along with the description, serve to explain theprinciples of the disclosure. The drawings are only illustrative ofcertain embodiments and do not limit the disclosure.

FIG. 1 illustrates an exemplified basic block diagram of a computerhardware used in an embodiment of the present disclosure.

FIGS. 2A through 2C illustrate an embodiment of a screen for proposing acopy area in a document to a user on a display.

FIGS. 3A and 3B illustrate an embodiment of an overall flowchart of aprocess for proposing, using a user device, a copy area in a document.

FIGS. 4A and 4B illustrate an embodiment of an overall flowchart of aprocess for proposing, using a user device and a server, a copy area ina document.

FIGS. 5A and 5B illustrate an embodiment of a flowchart of a process foranalyzing, using a history information, information relating to thecopied contents.

FIGS. 6A and 6B illustrate an embodiment of a flowchart of a process forupdating history information in a case where an original of a copysource document having tags is modified.

FIG. 7A illustrates an embodiment of a history information for a userdevice.

FIG. 7B illustrates an embodiment of a history information for a server.

FIG. 7C illustrates an embodiment of a history information for a serverafter grouping.

FIG. 7D illustrates an embodiment of a history information for a userdevice or a server after a modification of a copy source document wasmade.

FIG. 7E illustrates an embodiment of an availability information on adocument.

FIG. 8 illustrates of an overall functional block diagram of a userdevice which is used in accordance with the embodiment of the overallflowchart described in FIGS. 3A and 3B.

FIG. 9 illustrates of an overall functional block diagram of a computersystem hardware comprising a user device and a server which are used inaccordance with the embodiment of the overall flowchart described inFIGS. 4A and 4B.

While the disclosure is amenable to various modifications andalternative forms, specifics thereof have been shown by way of examplein the drawings and will be described in detail. It should beunderstood, however, that the intention is not to limit the disclosureto the particular embodiments described. On the contrary, the intentionis to cover all modifications, equivalents, and alternatives fallingwithin the spirit and scope of the disclosure.

DETAILED DESCRIPTION

The descriptions of the various embodiments of the present disclosurehave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

When a user attempts to copy a text string in a document, such as adocument on a website or in a local document, it may be cumbersome tospecify an appropriate area of a text displayed on a screen of a device.When a user uses a device having a small screen, such as a smartphone,mobile phone or tablet, there may be some difficulty in specifying,using a finger or pointing device, a copy area, for example onecharacter for starting or ending point where the user wants to copy.

With reference now to FIG. 1, FIG. 1 illustrates an exemplified basicblock diagram of a computer hardware used in an embodiment of thepresent disclosure.

A computer 101 may be, for example, but is not limited to, a desktop,laptop, notebook or server computer. The server computer may be, forexample, but is not limited to, a workstation, a rack-mount type server,a blade type server, or a mainframe server and may run, for example, ahypervisor for creating and running one or more virtual machines. Thecomputer 101 may comprise one or more CPUs 102 and a main memory 103connected to a bus 104.

A display 106 such as a liquid crystal display LCD may be connected tothe bus 104 via a display controller 105. The display 106 may be used todisplay, for management of the computer(s), information on a computerconnected to a network via a communication line and information onsoftware running on the computer using an appropriate graphicsinterface. The display may have a touch screen or a non-touch screen.The display may be for example, but not limited to, a LCD, PDP, OEL or aprojection type display. A disk 108 such as a hard disk or a solid statedrive, SSD, and a drive 109 such as a CD, a DVD, or a BD Blu-ray diskdrive may be connected to the bus 104 via an SATA or IDE controller 107.Moreover, a keyboard 111 and a mouse 112 may be connected to the bus 104via a keyboard-mouse controller 110 or USB bus not shown.

An operating system, programs, and any data may be stored in the disk108 to be loadable to the main memory. The drive 109 may be used toinstall a program, such as the computer program of an embodiment of thepresent disclosure, readable from a CD-ROM, a DVD-ROM, or a BD to thedisk 108 or to load any data readable from a CD-ROM, a DVD-ROM, or a BDinto the main memory 103 or the disk 108, if necessary.

A communication interface 114 may be based on, for example, but is notlimited to, the Ethernet protocol. The communication interface 114 maybe connected to the bus 104 via a communication controller 113,physically connects the computer 101 to a communication line 115, andmay provide a network interface layer to the TCP/IP communicationprotocol of a communication function of the operating system of thecomputer 101. In this case, the communication line 115 may be a wiredLAN environment or a wireless LAN environment based on wireless LANconnectivity standards.

Hereinafter, a user device and optionally a server may be used in anembodiment of the present disclosure. The user device may be a computer,such as described in FIG. 1, a smart phone, a mobile phone, a tablet, abook reader, a virtual machine, etc. The server may be a computer, suchas described in FIG. 1 and connected to one or more user devices via aninternet or intranet connection.

FIGS. 2A and 2B illustrate an embodiment of a screen for proposing acopy area in a document to a user on a display

With reference to FIG. 2A, FIG. 2A illustrates an embodiment of a screenof a user device.

The user device displays a part of a document on the screen 201 of theuser device. The document has one or more contents which can becopyable. The document may be, for example, a local or server documentin any format. The document may be, for example, but not limited to, astructured document in which tags are used, such as a web page document,an unstructured document, or a word, spreadsheet, presentation or PDFdocument. The tags may be, for example, HTML or XML. A content may be,for example, but not limited to one or more character strings, one ormore cells in a spreadsheet, one or more photo image, one or more movingimage, a combination of these, etc.

If the user wants to copy content, such as a character string, in thedocument, the user may make a predetermined operation, such as one leftclick by a mouse cursor 282 or one touch by a finger, in the vicinity ofan area where the user wants to copy.

In response to a detection of the one touch or click, the user deviceobtains information on a cursor or pointer position on the document. Thetouch may comprise, for example, tap operation. The cursor pointerposition may be, for example, a mouse pointer position. The pointerposition may be, for example, a touch position by a finger or touch pen,or a laser pointer position.

If the position is a character string in the document, such as “er” inthe sentence, “This version”, the user device may obtain a plurality ofcontents comprising such character string. The plurality of contents maybe retrieved from a history information which may include sets ofcontents in the document and their position information. Each of thesets may include content in the document and position information ofthis content. The content may have been previously copied by one or moreusers. The sets may be ranked in a predetermined order. Historyinformation may be in a form of, for example, but not limited to, adatabase, a text file, such as a CSV format, or a structured text, suchas XML based text.

The user device obtains, as a copy area, one or more contents among theplurality of contents comprising the character string. The obtained oneor more contents may be ranked in a predetermined order. Thepredetermined order may be determined in descending order according to ascore or rank which is associated with each of the one or more contents.

In response to a detection of the predetermined operation, the content,“This version could be a document shared among you and your coworkers toallow for effective distribution of information. If a single sourcedocument is used to supply multiple projects, shared copying may beespecially useful,” 212, is highlighted on the screen 202 as the areacopied most frequently by users. The user device may display the window222 showing a message “This is the area copied most frequently byusers”. Further, the window 222 may show a menu “View area copied byyou”. The menu can be used for switching a proposal of the areas copiedby users to a proposal of the areas copied by the user themself.

If the user wants to copy the proposed area 212, the user may make apredetermined operation, e.g. one right click by the mouse whileclicking the left button or a double tapping by another finger whiletouching the “er” in the sentence by the finger.

Meanwhile, if the user wants to show another proposal of a copy area,the user may make a further predetermined operation, such as furtheranother left click by a mouse cursor 283 or further another touch by afinger, in the vicinity of the area where the user wants to copy.

In response to a detection of the further predetermined operation, thecontent, “This version” 213, is highlighted on the screen 203 as thearea copied second most frequently by users. The user device may displaythe window 223 showing a message “This is the area copied most secondfrequently by users”. Further, the window 223 may show a menu “View areacopied by you”.

If the user wants to copy the proposed area 213, the user may make thepredetermined operation, such as one right click by the mouse whileclicking the left button, or a double tapping by another finger whiletouching the “er” in the sentence by the finger.

Meanwhile, if the user wants to show still another proposal of a copyarea, the user may make still further predetermined operation, such asstill further another left click by a mouse cursor 284 or still furtheranother touch by a finger, in the vicinity of the area where the userwants to copy.

In response to a detection of the still further predetermined operation,the content, “This version could be a document shared among you and yourcoworkers to allow for,” 214, is highlighted on the screen 204 as thearea copied third most frequently by users. The user device may displaythe window 224 showing a message “This is the area copied most thirdfrequently by users”. Further, the window 224 may show a menu “View areacopied by you”.

If the user wants to copy the proposed area 214, the user may make thepredetermined operation, such as one right click by the mouse whileclicking the left button, or a double tapping by another finger whiletouching the “er” in the sentence by the finger.

In the embodiment mentioned above, one touch or click is used forproposing a copy area in a predetermined order.

In another embodiment, two or more touches or clicks may be used forproposing a copy area in a predetermined order. Such examples may be asfollows: if the user does two touches or clicks, the user device maydisplay the screen 203 in which the area copied most second frequentlyby users is highlighted. If the user does three touches or clicks, theuser device may display the screen 204 in which the area copied mostthird frequently by users is highlighted. The number of times of touchesor clicks may be arbitrarily set as appropriate. If the number oftouches or clicks exceeds a predetermined number, the user device maydisplay a list for proposals of copy areas, for example, in a separatewindow, or the user device may allow a user to select a copy area usinga default method provided by an application.

As stated above, when a focus by a user associated a user device is doneon a part of contents on a document, a copy area comprising the focusedpart is proposed in the predetermined order among the proposals ofcopying content. Accordingly, the user can select a copy area in thepredetermined order according to the copying frequency done by aplurality of users.

With reference now to FIG. 2B, FIG. 2B illustrates an embodiment of ascreen displaying a copy area which is commonly copied by other users oris copied by a user associated with the user device.

The user device displays a part of a document, for example, a web pageor local document, on the screen 231 of the user device.

The screen 232 and the window 252 are the same as the screen 202 and thewindow 222 described in FIG. 2A, respectively. The screen 232 and thewindow 252 are displayed according to the same way described above.

If the user wants to show a proposal of a copy area which was copied bythe user itself, the user may touch or click the character string, “Viewarea copied by you”, in the window 252.

In response to a detection of the touch or click of the characterstring, the content, “This version could be a document shared among youand your coworkers to allow,” 243, is highlighted on the screen 233 asthe area copied most frequency by the user itself. The user device maydisplay the window 253 showing a message “This is the area copied mostfrequently by you”. Further, the window 253 may show a menu “View areacopied by users”.

If the user wants to copy the proposed area 243, the user may make thepredetermined operation, such as one right click by the mouse whileclicking the left button, or a double tapping by another finger whiletouching the “er” in the sentence by the finger.

Meanwhile, if the user wants to return to the screen 232, the user maytouch or click the character string, “View area copied by users”, in thewindow 253.

In response to a detection of the touch or click of the characterstring, the user device displays the screen 234 which is the same as thescreen 232.

If the user wants to copy the proposed area 244, the user may make thepredetermined operation, such as one right click by the mouse whileclicking the left button, or a double tapping by another finger whiletouching the “er” in the sentence by the finger.

In the embodiment mentioned above, a proposal of copy area which iscommonly copied by other users is first displayed on the screen. Inanother embodiment, a proposal of copy area which is copied by a userassociated with a user device is first displayed on the screen. The usermay select which a proposal of copy area is first displayed on thescreen.

As stated above, when a focus by a user associated with a user device isdone on a part of contents on a document, a copy area comprising thefocused part is proposed in the predetermined order among the proposalsof copying content in history information. Further, the user can switcha proposal of the areas from the areas copied by a plurality of users tothe areas copied by the user themself or another user, and vice versa.Accordingly, the user can select a copy area in the predetermined orderaccording to the copying frequency done by a plurality of users or theuser itself. This selection may be useful when a document may be, forexample, but not limited to, a collaborating document, such as a manualor materials on conference, or a web page.

With reference now to FIG. 2C, FIG. 2C illustrates an embodiment of ascreen displaying a copy area in a document in which a modification wasmade compared to an original of a copy source document.

The user device displays a part of a document, for example, a web pageor local document, on the screen 261 of the user device.

If the user wants to copy a character string in the document, the usermay make a predetermined operation, such as one left click by a mousecursor 271 or one touch by a finger, in the vicinity of an area wherethe user wants to copy.

In response to a detection of the one touch or click, the user deviceobtains information on a cursor or pointer position on the document.

If the position is a character string in the document, such as “er” inthe sentence, “This version”, the user device obtains a plurality ofcontents comprising such character string. The plurality of contents isretrieved from a history information which comprises sets of contents inthe document and their position information. Let us suppose that asentence in an original of a copy source document, which sentencecorresponding to the copied area recorded in the history information,“This version could be a document shared among you and your coworkers toallow for effective distribution of information,” was modified to “Toimprove data sharing, this version could be a document shared among youand your coworkers to allow for effective distribution of information,”prior to displaying of a copy source document which was modified from anoriginal of a copy source document (hereinafter also referred to as“modified copy source document”) on the screen. In such a case, thecopied area recorded in the history information is updated from “Thisversion could be a document shared among you and your coworkers to allowfor effective distribution of information,” to “To improve data sharing,this version could be a document shared among you and your coworkers toallow for effective distribution of information,” Therefore, theproposal of copying area corresponding to the updated copied area 272 inthe history information is presented in replace of the copied areabefore updated in the history information. Accordingly, the sentenceafter modification, “To improve data sharing, this version could be adocument shared among you and your coworkers to allow for effectivedistribution of information,” is highlighted on the screen 262 as aproposal of the copy area 272. The user device may display the window273 showing a message “Notes: The original copy source document wasmodified. The proposal of copying area 272 is presented by taking intoaccount a character string before modification. This area corresponds tothe area copied most frequently by users.” Further, the window 273 mayshow a menu “View area copied by you”.

As stated above, if a content in the document is modified, acorresponding content in the history information is also similarlymodified. Further, if a position of a content in the document ischanged, position information on a corresponding content in the historyinformation is updated correspondingly. Therefore, the user device canpropose to a user a copy area which is included in a modified copysource document, using the updated history information. Accordingly, adocument which will be frequently modified, such as a web page or acollaborating document, is a subject of an embodiment of the presentdisclosure.

With reference now to FIGS. 3A and 3B, FIGS. 3A and 3B illustrate anembodiment of an overall flowchart of a process for proposing, using auser device, a copy area in a document.

In step 301, the user device starts the process for proposing a copyarea in a document.

In step 302, the user device reads, into a memory, a document from alocal storage or storage which can be accessible by the user device; ordownloads, into the memory, a document from an internet or intranet.Then, the user device displays the document on the screen of the userdevice. The user device monitors a user operation made on a document.The user operation may be done by, for example, but not limited to, atouch or click made on a content which is displayed on the screen.

In decision 327, the user device may judge whether the user operation isa predetermined operation for starting the proposal of a copy area inthe document. If the judgment is positive, the user device may proceedto step 303. Meanwhile, if the judgment is negative, the user device maywait for a next detection.

In step 303, the user device obtains information on a cursor or pointerposition on the document in response to a predetermined operation, suchas a touch or click by the user. Further, the user device may obtaininformation on the document. The information may be a storage address ofthe document, such as a storage path or URL. The information may be usedfor specifying that the document is stored in the user device, or on theserver or network attached storage NAS.

In decision block 304, the user device may judge whether the document isa server document or not. If the judgment is positive, the user devicemay proceed to step 315 FIG. 3B. Meanwhile, if the judgment is negative,the user device may proceed to step 305.

In step 305, the user device accesses a history information for a userdevice. The history information for a user device may be stored in astorage of the user device or storage which can be accessible by theuser device, such as a server or NAS.

In step 306, the user device judges, using the information on thedocument, whether the history information for a user device has thelocation information which was obtained in step 303. If the judgment ispositive, the user device may proceed to step 307. Meanwhile, if thejudgment is negative, the user device may proceed to step 311.

In step 307, the user device retrieves, from the history information fora user device, a plurality of contents comprising the character stringassociated with the cursor or pointer position. Each of the retrievedcontents has been ranked in a predetermined order.

For example, if the document is a structured document in which tags areused, the retrieval of the plurality of contents comprises calculatingan order of tags in the document and the calculated order is used foridentifying plurality of contents.

For example, if the document is an unstructured document, the retrievalof the plurality of contents comprises calculating an order of bytes inthe document and the calculated bytes are used for identifying pluralityof contents.

For example, if the document is a spreadsheet, the retrieval of theplurality of contents comprises calculating cell location in thedocument and the calculated cell location is used for identifyingplurality of contents.

In step 308, the user device proposes one or more contents in thepredetermined order among the retrieved plurality of contents. Theproposal may be made by displaying the one or more contents on thescreen in the predetermined order in response to hover time or useroperation. The number of proposed contents may be determined by apredefined operation done by the user. The number of proposed contentsmay be a plural number. In a case where the retrieved content is onlyone, only this content can be presented. The user operation may bepredefined depending on a user device or an operation system which isrunning on the user device. The user operation may be, for example, butnot limited to, the number of touches or clicks, or, while touching thescreen with one finger, the numbertimes that a user touches the screenwith another finger. The hover time may be predefined, such as a fewseconds.

In decision 309, the user device judges whether the proposed content isselected by the user or not. If the judgment is positive, the userdevice may proceed to step 310. Meanwhile, if the judgment is negative,the user device may proceed to step 312.

In step 310, the user device copies the selected content to an areaspecified by the user.

In step 311, the user device may show, for example, a new window on thescreen, that there is no proposal of copy area.

In decision 312, the user device judges whether the user selects a copyarea using a default method provided by an application. If the judgmentis positive, the user device may proceed to step 313. Meanwhile, if thejudgment is negative, the user device may proceed to final step 326.

In step 313, the user device updates the history information for a userdevice using the copied content and its position information. Theinformation to be updated may be, for example, date of copying,information on a copy source document, a copied content, the number ofcopies made, position of the copied content, a score, a contentcomprising the copied content, etc.

“Date of copying” may denote a date when a user selected a content in acopy source document and then made a copy operation for the content, ormay otherwise provide some measure of the time a copy at which was made.

“Information on a copy source document” may denote a location where thecopy source document is stored.

“Copied content” may denote the content to which the copy operation wasmade.

“The number of copies made” may denote a count that the copy operationwas made for each of the same contents in the same position in the copysource document. “The number of copies made” may be for one user who isor is not a user associated with a user device, or a plural usersincluding or not including a user associated with a user device. “Thenumber of copies made” may be calculated for one day or two or moredays, or any other measurable time period.

“Position of copied content” may denote a position of the copieddocument in the copy source document.

“Score” may denote a value associated with each of the contents in thedocument The score may be calculated from the number of copies made anda weight associated with a date on which the copying of the content inthe document was done.

“A content comprising the copied content” may denote a unit of documentstructure, such as a unit defined by p-tags, which comprises the copiedcontent. “A content comprising the copied content” can be used forverifying a modification of an original source document.

In step 314, the user device may analyze the information in the historyinformation for a user device. An example of merging the information inthe history information for a user device will be explained hereinafterby referring to FIG. 7C discussed below.

Referring now to FIG. 3B, in step 315, the user device accesses ahistory information for a server. The history information for a servermay be stored in a server storage or storage which can be accessible bythe user device, such as a NAS.

In decision 316, the user device judges, using the information on thedocument, whether the history information for a server has the locationinformation which may have been obtained in step 303. If the judgment ispositive, the user device may proceed to step 317. Meanwhile, if thejudgment is negative, the user device may proceed to step 321.

In step 317, the user device retrieves, from the history information fora server, a plurality of contents comprising the character stringassociated with the cursor or pointer position. Each of the retrievedcontents may have been ranked in a predetermined order.

In step 318, the user device proposes one or more contents in thepredetermined order among the retrieved plurality of contents. Theproposal may be made by displaying the one or more contents on thescreen in the predetermined order in response to hover time or useroperation. The number of proposed contents may be determined by apredefined operation done by the user. The number of proposed contentsmay be a plural number. In a case where the retrieved content is onlyone, only this content can be presented. The user operation may bepredefined depending on a user device or an operation system which isrunning on the user device. The user operation may be, for example, butnot limited to, the number of touches or clicks, or, while touching thescreen with one finger, the number of times that a user touches thescreen with another finger. The hover time may be predefined, such as afew seconds.

In decision 319, the user device judges whether the proposed content isselected by the user or not. If the judgment is positive, the userdevice may proceed to step 320. Meanwhile, if the judgment is negative,the user device may proceed to decision 322.

In step 320, the user device copies the selected content to an areaspecified by the user.

In step 321, the user device may show, for example, a new window on thescreen, that there is no proposal of copy area.

In decision 322, the user device judges whether the user selects a copyarea using a default method provided by an application. If the judgmentis positive, the user device may proceed to step 323. Meanwhile, if thejudgment is negative, the user device may proceed to final step 326.

In step 323, the user device updates the history information for aserver using the copied content and its position information. Theinformation to be updated may be, for example, date of copying,information on a copy source document, a copied content, the number ofcopies made, position of the copied content, a score, a contentcomprising the copied content, etc.

In step 324, the user device may analyze the information in the historyinformation for a server. An example of merging the information in thehistory information for a server will be explained hereinafter byreferring to FIG. 7C discussed below.

In step 326, the user device terminates the process mentioned above.

With reference now to FIGS. 4A and 4B, FIGS. 4A and 4B illustrate anexample embodiment of an overall flowchart of a process for proposing,using a user device and a server, a copy area in a document.

In step 401, the user device starts the process for proposing a copyarea in a document.

In step 402, the user device reads, into a memory, a document from alocal storage or storage which can be accessible by the user device; ordownloads, into the memory, a document from an internet or intranet.Then, the user device displays the document on the screen of the userdevice. The user device monitors a user operation made on a document.The user operation may be done by, for example, but not limited to, atouch or click made on a content which is displayed on the screen.

In decision 427, the user device may judge whether the user operation isa predetermined operation for starting the proposal of a copy area inthe document. If the judgment is positive, the user device may proceedto step 303. Meanwhile, if the judgment is negative, the user device maywait for a next detection.

In step 403, the user device obtains information on a cursor or pointerposition on the document in response to a predetermined operation, suchas a touch or click by the user. Further, the user device may obtaininformation on the document. The information may be a storage address ofthe document, such as a storage path or URL. The information may be usedfor specifying that the document is stored in the user device, or on theserver or network attached storage NAS.

In step 404, the user device judges whether the document is a serverdocument or not. If the judgment is positive, the user device sends to aserver a notification for requesting a retrieval of a plurality ofcontents comprising the character string associated with the cursor orpointer position and then proceed to step 415 (FIG. 4B). Thenotification may comprise the information of the document and the cursoror pointer position on the document. The information of the document maybe, for example, a storage path or URL. Meanwhile, if the judgment isnegative, the user device proceeds to step 405.

In step 405, the user device accesses a history information for a userdevice. The history information for a user device may be stored in astorage of the user device or storage which can be accessible by theuser device, such as a server or NAS.

In decision 406, the user device judges, using the information on thedocument, whether the history information for a user device has thelocation information which was obtained in step 403. If the judgment ispositive, the user device may proceed to step 407. Meanwhile, if thejudgment is negative, the user device may proceed to step 411.

In step 407, the user device retrieves, from the history information fora user device, a plurality of contents comprising the character stringassociated with the cursor or pointer position. Each of the retrievedcontents has been ranked in a predetermined order.

In step 408, the user device proposes one or more contents in thepredetermined order among the retrieved plurality of contents. Theproposal may be made by displaying the one or more contents on thescreen in the predetermined order in response to hover time or useroperation. The number of proposed contents may be determined by apredefined operation done by the user. The number of proposed contentsmay be a plural number. In a case where the retrieved content is onlyone, only this content can be presented. The user operation may bepredefined depending on a user device or an operation system which isrunning on the user device. The user operation may be, for example, butnot limited to, the number of touches or clicks, or, while touching thescreen with one finger, the numbertimes that a user touches the screenwith another finger. The hover time may be predefined, such as a fewseconds.

In decision 409, the user device judges whether the proposed content isselected by the user or not. If the judgment is positive, the userdevice may proceed to step 410. Meanwhile, if the judgment is negative,the user device may proceed to step 412.

In step 410, the user device copies the selected content to an areaspecified by the user.

In step 411, the user device may show, for example, a new window on thescreen, that there is no proposal of copy area.

In decision 412, the user device judges whether the user selects a copyarea using a default method provided by an application. If the judgmentis positive, the user device may proceed to step 413. Meanwhile, if thejudgment is negative, the user device may proceed to final step 426.

In step 413, the user device updates the history information for a userdevice using the copied content and its position information. Theinformation to be updated may be, for example, date of copying,information on a copy source document, a copied content, the number ofcopies made, position of the copied content, a score, a contentcomprising the copied content, etc.

In step 414, the user device may analyze the information in the historyinformation for a user device. An example of merging the information inthe history information for a user device will be explained hereinafterby referring to FIG. 7C discussed below.

Referring now to FIG. 4B, in step 415, the server accesses a historyinformation for a server. The history information for a server may bestored in a storage in the server or storage which can be accessible bythe server, such as a NAS.

In decision 416, the server judges, using the information on thedocument, whether the history information for a server has the locationinformation which was sent from the user device. If the judgment ispositive, the server may proceed to step 417. Meanwhile, if the judgmentis negative, the server may proceed to step 421.

In step 417, the server retrieves, from the history information for aserver, a plurality of contents comprising the character stringassociated with the cursor or pointer position. Each of the retrievedcontents may have been ranked in a predetermined order.

In step 418, the server chooses one or more contents in thepredetermined order among the retrieved plurality of contents and thensends them to the user device. In a case where the retrieved content isonly one, only this content may be sent. The proposal in the user devicemay be made by displaying the one or more retrieved contents on thescreen in the predetermined order in response to hover time or useroperation. The number of proposed contents may be determined by apredefined operation done by the user or administrator of the server.

In decision 419, the server waits for a notification, from the userdevice, for announcing that the proposed copy area is selected. Inresponse to a receipt of the notification, the server judges whether theproposed content is selected by the user or not. If the judgment ispositive, the server may proceed to step 423. Meanwhile, if the judgmentis negative, the server may proceed to step 422.

In step 421, the server may send to the user device a message to theeffect that there is no proposal of copy area.

In decision 422, the server waits for a notification, from the userdevice, for announcing that the user selects a copy area using a defaultmethod provided by an application. The notification may comprise theinformation of the document and the cursor or pointer position on thedocument. The information of the document may be, for example, a storagepath or URL. In response to a receipt of the notification, the serverjudges whether the user selects a copy area using a default methodprovided by an application. If the judgment is positive, the server mayproceed to step 423. Meanwhile, if the judgment is negative, the servermay proceed to step 425.

In step 423, the server updates the history information for a serverusing the copied content and its position information. The informationto be updated may be, for example, date of copying, information on acopy source document, copied content, the number of copies made,position of copied content, a score, a content comprising the copiedcontent, etc.

In step 424, the server may analyze the information in the historyinformation for a server. An example of merging the information in thehistory information for a server will be explained by referring to FIG.7C discussed below.

In decision 425, the server may judges whether the history informationfor a user device is used or not. If the judgment is positive, theserver may proceed to step 405. Meanwhile, if the judgment is negative,the server may proceed to a final step 426.

In step 426, the user device terminates the process mentioned above.

FIGS. 5A and 5B illustrate an embodiment of a flowchart of a process foranalyzing, using a history information for a user device or for aserver, information relating to the copied contents.

With reference now to FIG. 5A, FIG. 5A illustrates an overall flowchartof the process for analyzing information relating to the copiedcontents.

In step 501, the user device starts the process for analyzinginformation relating to the copied contents. In one embodiment, theprocess can be implemented in step 314 (FIG. 3A), 324 (FIG. 3B), 414(FIG. 4A), or 424 (FIG. 4B). In another embodiment, the process can bestarted in a response to a detection of the selection and copy of acontent in a document, which detection is described in step 502 below.

In step 502, the user device detects a selection and copy of a contentin a document.

In decision 503, the user device judges whether the document is a serverdocument or not. If the judgment is positive, the user device may sendto a server a notification for requesting analyzing information in thehistory information for a server and then the process goes to step 505.Meanwhile, if the judgment is negative, the user device may proceed tostep 504.

In step 504, the user device analyzes the information in the historyinformation for a user device. The details of the analysis subprocesswill be explained hereinafter by referring to FIG. 5B discussed below.

In step 505, the server analyzes the information in the historyinformation for a server. The details of the analysis subprocess will beexplained hereinafter by referring to FIG. 5B discussed below.

In step 506, the server terminates the process mentioned above.

With reference now to FIG. 5B, FIG. 5B illustrates a flowchart of thedetail subprocess of step 504, history information stored in the userdevice, and 505, history information stored in the server.

In the following, a case of step 504, history information stored in theuser device, mentioned above is first explained.

In step 511, the user device starts the process for analyzing theinformation in the history information for a user device.

In step 512, the user device accesses the history information for a userdevice.

In step 513, the user device records, into the history information for auser device, the information on the content which was copied by theuser. The information may comprise, for example, date of copying,information on a copy source document, a copied content, the number ofcopies made, position of copied content, a content comprising the copiedcontent, etc.

In decision 514, the user device judges whether the history informationfor a user device already has the same following information or not:information on a copy source document, a copied content, and position ofthe copied content. All of which are recorded, in step 513, in thehistory information for a user device. If the judgment is positive, theuser device may proceed to step 515. Meanwhile, if the judgment isnegative, the server may proceed to step 520.

In step 515, the user device calculates the total copy number for thecontent which was copied by the user and then records the calculatedtotal number into the history information for a user device to updatethe total number of copying for the content which was copied by theuser.

In step 516, the user device calculates a score associated with each ofthe contents in the document, using the total number of copying and aweight associated with a date on which the copying of the content in thedocument was done. The weight may be decided by using a date. In a casewhere date of copying is new, for example, in a year, high weight isused. Meanwhile, in a case where date of copying is old, for example,before a year, low weight is used. For example, in a case where date ofcopying is in a year, the weight is one, in a case where date of copyingis before a year and in two year, the weight is 0.95, in a case wheredate of copying is before two year and in three year, the weight is 0.9,and so on. An example of score will be explained hereinafter byreferring to FIGS. 7A and 7B discussed below.

In step 517, the user device generates a group in the historyinformation for a user device. The group can be made using informationon a copy source document, a copied content and position of the copiedcontent. In each group, the copied contents having the same contents andthe same position are summarized. An example of a group will beexplained hereinafter by referring to FIG. 7C discussed below.

In step 518, the user device obtains a total score by calculating, ineach group, the sum of each score for the same copied contents havingthe same position of the copied contents. Further, the user device maycalculate a rank for each of the same copied content in the group, usingthe calculated total score and then assigns a number of the ranks toeach of the total scores in the group. The ranking may be carried outaccording to the number of copying, the score or the combination ofthese. An example of a rank will be explained hereinafter by referringto FIG. 7C discussed below.

In step 519, the user device records, into the history information for auser device, the calculated score, the generated group and thecalculated rank to update the history information for a user device.

In step 520, the user device records, into the history information for auser device, information relating to the copied content to update thehistory information for a user device, since the history information fora user device does not yet record the same data for the copied content.

In step 521, the user device calculates a score associated with thecopied content, using the total number of copying and a weightassociated with a date on which the copying of the content in thedocument was done and then record the calculated score into the historyinformation for a user device.

In step 522, the user device terminates the process mentioned above.

In a case of step 504 mentioned above, a subject of steps 511 to 522 maybe the user device and a history information is the history informationfor a user device. In a case of step 505 mentioned above, a subject ofsteps 511 to 522 may be the server and a history information is thehistory information for a server. The above explanations of steps 511 to512 for the user device can be applied also to the case for the server.Therefore, the terms in the above explanations of steps 511 to 512 forthe user device, “the user device” and “the history information for auser device”, may be read as “the server” and “the history informationfor a server”, respectively.

With reference now to FIGS. 6A and 6B, FIGS. 6A and 6B illustrate anembodiment of a flowchart of a process for updating history informationfor a user device or for a server in a case where an original of a copysource document having tags is modified. One kind of the tags is ap-tag. The p-tag can be represented as:

-   <P> </P>-   and is used for defining a paragraph.

In step 601, the user device starts the process for updating historyinformation.

In step 602, the user device accesses a history information for a userdevice.

In step 603, the user device repeats steps 604 to 630 until unprocesseddata exists in the history information for a user device.

In step 604, the user device obtains the following information from thehistory information for a user device: information on a copy sourcedocument, copied character string, position of copied character string,and a character string in p-tag in n-th tag, where n denotes a positiveinteger.

In step 605, the user device accesses an original of the copy sourcedocument.

In step 606, the user device obtains p-tags in the original of the copysource document and then assigns a number to the obtained p-tags. Thenumber may be a positive integer.

In step 607, the user device obtains a character string in the n-th tag.

In step 608, the user device calculates a similarity between thecharacter string in the p-tag which is obtained from the historyinformation for a user device (hereinafter referred to as “the characterstring in the past time”) and the character string in the p-tag which isobtained from the original of the copy source document (hereinafterreferred to as “the character string in the present time”). Many knownmethod can be used for calculating such similarity, for example, but notlimited to, a cosine similarity.

In decision 609, the user device judges whether the similarity is equalto one or not. If the judgment is positive, the character string in thepast time is the same with the character string in the present time and,therefore, the user device proceeds to step 630. Meanwhile, if thejudgment is negative, the user device proceeds to decision 610 (FIG.6B).

In decision 610, the user device judges whether the similarity is largerthan or equal to a predetermined threshold or not. If the judgment ispositive, the user device proceeds to decision 611. Meanwhile, if thejudgment is negative, the user device proceeds to step 618.

In decision 611, the user device judges whether the copied characterstring is recorded in the character string in the history informationwhich is now recorded or not. If the judgment is positive, the userdevice proceeds to step 612. Meanwhile, if the judgment is negative, theuser device proceeds to step 614.

In step 612, the user device obtains, as the number of bytes, theposition of the character string in the p-tag.

In step 613, the user device replaces the position of copied characterstring in the history information for a user device with the obtainednumber of bytes to update the history information for a user device.

In step 614, the user device retrieves, from the p-tag, a characterstring which is similar to the copied character string.

In decision 615, the user device judges whether the similarity betweenthe retrieved similar character string and the character string in thehistory information which is now recorded is larger than or equal to apredetermined threshold or not. If the judgment is positive, the userdevice proceeds to step 616. Meanwhile, if the judgment is negative, theuser device proceeds to step 617.

In step 616, the user device records, into the history information for auser device, the position of the similar character string which wasretrieved in step 614.

In step 617, the user device records, into the history information for auser device, information to the effect that the copied character stringwas deleted from the original of the copy source document.

Referring now to FIG. 6B, in decision 618, the user device judgeswhether there is another p-tag in the original of the copy sourcedocument. If the judgment is positive, the user device proceeds to step619. Meanwhile, if the judgment is negative, the user device proceeds tostep 626.

In step 619, the user device calculates a similarity between thecharacter string in the p-tags which is obtained from the historyinformation for a user device (hereinafter referred to as “the characterstring in the past time”) and the character string in another p-tagwhich is obtained from the original of the copy source document(hereinafter referred to as “another character string in the presenttime”).

In decision 620, the user device judges whether the similarity is equalto one or not. If the judgment is positive, the character string in thepast time is the same with another character string in the present timeand, therefore, the user device proceeds to step 621. Meanwhile, if thejudgment is negative, the user device proceeds to decision 622.

In step 621, the user device updates the order of the number of tags inthe history information for a user device.

In decision 622, the user device judges whether the similarity is largerthan or equal to a predetermined threshold or not. If the judgment ispositive, the user device proceeds to decision 623. Meanwhile, if thejudgment is negative, the user device proceeds back to decision 618.

In decision 623, the user device judges whether the copied characterstring is recorded in another character string in the historyinformation which is now recorded or not. If the judgment is positive,the user device proceeds to step 624. Meanwhile, if the judgment isnegative, the user device proceeds to step 627.

In step 624, the user device obtains, as the number of bytes, theposition of another character string in the p-tag.

In step 625, the user device replaces the position of the copiedcharacter string in the history information for a user device with theobtained number of bytes to update the history information for a userdevice.

In step 626, the user device records, into the history information for auser device, information to the effect that the copied character stringwas deleted from the original of the copy source document.

In step 627, the user device retrieves, from another p-tag, a characterstring which is similar to the copied character string.

In decision 628, the user device judges whether the similarity betweenthe retrieved similar character string and the character string in thehistory information which is now recorded is larger than or equal to apredetermined threshold or not. If the judgment is positive, the userdevice proceeds to step 629. Meanwhile, if the judgment is negative, theuser device proceeds back to decision 618.

In step 629, the user device records, into the history information for auser device, the position of the similar character string which wasretrieved in step 627.

In step 630, the user device proceeds back to step 603 to repeat steps604 to 630 with a new character string.

In step 631, the user device may update a score, a group and/or a rankif the history information for a user device was updated in steps 604 to630. The update of a score, a group and/or a rank can be made as sameway described in steps 516, 517 and 518 (FIG. 5B) mentioned above,respectively.

In step 632, the user device terminates the process mentioned above.

In a case where a subject of steps 601 to 632 may be the user device anda history information may be the history information for a user deviceis explained above. The above explanations for the user device can beapplied also to the case where a subject of steps 601 to 632 may be theserver and a history information may be the history information for aserver. Therefore, the terms in the above explanations of steps 601 to632 for the user device, the terms in the above explanations of steps601 to 632 for the user device, “the user device” and “the historyinformation for a user device” may be read as “the server” and “thehistory information for a server”, respectively.

With reference now to FIG. 7A, FIG. 7A illustrates an example embodimentof a history information for a user device.

The history information for a user device 701 may have any, all, or atleast the following information: date of copying, information on a copysource document, a copied content, the number of copies made, positionof the copied content, etc. The history information for a user device701 may further have the following information: score, contentcomprising the copied content, etc.

The history information for a user device 701 may be prepared using copyhistories obtained from a user themself.

Each of the scores described in fifth column of the second, third, fifthand sixth rows in the history information for a user device 701 may becalculated as follows:

(the number of copied made)×(a weight associated with the date ofcopying)

wherein the weight is one since the date of copying is in a year.

The score described in the fifth column of the fourth row in the historyinformation for a user device 701 may be calculated as follows:

(the number of copies made)×(a weight associated with the date ofcopying)

wherein the weight is 0.95 since the date of copying is before a year.

In a case where the copy source document is a document written withHTML, the position of the copied content is defined with the order ofthe number of the tags and the starting and the end bytes in the tag.Examples can be seen in the sixth column of the second and third rows inthe history information for a user device 701. For example, {T2; 1stbyte; 9th bytes} denotes that the position of the copied content is inthe second tag in the copy source document and the copied content islocated in 1^(st) byte to 9^(th) byte in the second tag.

In a case where the copy source document is a document written as anon-structured document, the position of the copied content is definedwith the starting and the end bytes in the copy source document.Examples can be seen in the sixth column of the fourth to sixth rows inthe history information for a user device 701. For example, {10th byte;39th byte} denotes that the position of the copied content is located in10^(th) byte to 39^(th) byte in the copy source document.

FIG. 7B illustrates an embodiment of a history information for a server.

The history information for a server 711 may have the followinginformation: date of copying, information on a copy source document, acopied content, the number of copies made, position of the copiedcontent, score, content comprising the coped content, etc.

The history information for a server 711 may be prepared using copyhistories obtained from a plurality of users. The plurality of users mayor may not comprise a user associated with a user device who uses thehistory information for a server 711.

FIG. 7C illustrates an embodiment of a history information for a serverafter grouping.

The history information for a server 721 may have the followinginformation: information on a copy source document, group, a copiedcontent, score, position of the copied content, rank, content comprisingthe copied content, etc.

“Group” can be made using information on a copy source document, acopied content and position of the copied content. One group may be madefor each of the copy source document having the common source.

The history information for a server 721 shows the following threegroups in the second column:http://www.sharecopy.com/shareddocs/thisversion*{10th byte; 214th byte};“Test/NotesDevelopment:Notes: DB*{10th byte; 42nd byte}”; and“Test/NotesDevelopment:Notes: DB*{46th byte; 53rd byte}”.

“Total score” may be obtained, for example, by calculating, in eachgroup, the sum of each score for the same copied contents having thesame position of the copied contents.

“Rank” may be obtained, for example, by calculating the total score foreach score of the same copied content in the group and then assigning anumber of the ranks to each of the total scores in the groups.

FIG. 7D illustrates an embodiment of a history information for a userdevice or server after a modification of a copy source document.

The history information 731 shows an original history information beforea modification of a copy source document was made.

In a case where the original of the copy source document is modified,the history information 731 is also modified according to themodification.

For example, if the copied content in the sixth column of the second andthird rows, “This version could be a document shared among you and yourcoworkers to allow for effective distribution of information. If asingle source document is used to supply multiple projects, sharedcopying may be especially useful,” is modified to “To improve datasharing, this version could be a document shared among you and yourcoworkers to allow for effective distribution of information. If asingle source document is used to supply multiple projects, sharedcopying may be especially useful,” the history information 731 isupdated by replacing the copied content with the modified sentence togenerate the updated history information 741. Further, the positioninformation on the modified content and the content relating to themodified content in the history information 731 is also updatedaccordingly, as seen in the sixth column of the second and third rows ofthe updated history information 741.

For example, if the copied content, “Welcome to this doc!” which can beseen in the third column of the fourth row in the history information731, is deleted from the original of the copy source document, thehistory information 731 is updated to show the effect that the copiedcontent is deleted. Accordingly, the updated history information 741shows that “copied content” and “the number of copies made” are“{deleted}” in the third column of the fourth row.

After the updated history information 741 is generated, the updatedhistory information 741 is used for proposing a copy area in a documentin replace of the history information 731.

In a case where the history information for a user device is associatedwith the history information for a server and the history informationfor a user device is updated, the history information for a server isalso similarly modified according to the update done in the historyinformation for a user device.

With reference now to FIG. 7E, FIG. 7E illustrates an embodiment of anavailability information on a document.

The availability information 751 may define a rule for determining wherethe copied character string is stored or uploaded and who can access thehistory information.

The availability information 751 has the following information:information on a copy source document, document where the copied contentis pasted, place where information is available, security information,etc.

“Information on a copy source document” may denote a location where thecopy source document is stored.

“Place where information is available” may denote a range where thehistory information for a server or user device is available.

“Security information” may denote whether the history information for aserver can be shared with a server or user device. For example, a userassociated with a user device can determine that a copy history made bythe user itself is or is not shared with a server.

The availability information 751 may be used to determine in whichhistory information the copied character string is stored, that is, ahistory information for a user device or a history information for aserver. The determination can be made according to the “Place whereinformation is available”.

In a case where a server document is downloaded to a user device andthen a character string in the server document is copied, the copiedcharacter string is uploaded to the server from the user device.

Further, the availability information 751 may be used for determining asharing range of the history information. The determination can be madeaccording to the “Security information”.

With reference now to FIG. 8, FIG. 8 illustrates of an overallfunctional block diagram of an example of a user device which is used inaccordance with the embodiment of the overall flowchart described inFIGS. 3A and 3B.

The user device 801 may correspond to the computer 101 described in FIG.1.

The user device 801 may comprise a reading section 811, an obtainingsection 812, a retrieving section 813, a proposing section 814, acopying section 815, an incrementing section 816 and an analyzingsection 817. The user device 801 may further comprise a detectingsection 818 and a modifying section 819.

The reading section 811 may read, into a memory, a document from a localstorage or storage 891 which can be accessible by the user device 801;or downloads, into the memory, a document from an internet or intranet.

The obtaining section 812 may detect the user operation and, if the useroperation is a predetermined operation for starting the proposal of acopy area in the document, then obtain information on a cursor orpointer position on a document displayed on a screen. The obtainingsection 812 may perform a part of step 302, and step 303 described inFIG. 3A.

The retrieving section 813 may retrieve, from a history information 892,a plurality of second contents if the position is on a first content inthe document. Each of the second contents comprises the first content.The retrieving section 813 may perform steps 304 to 307 described inFIG. 3A and 315 to 317 described in FIG. 3B.

The proposing section 814 may propose, as a copy area, one or moresecond contents in the predetermined order among the retrieved secondcontents. The proposing section 814 may display the one or more secondcontents on the screen in the predetermined order in response to hovertime or user operation. The proposing section 814 may perform step 308described in FIG. 3A and step 318 described in FIG. 3B.

The copying section 815 may copy the content selected by a user to anarea designated by a user. The copying section 815 may perform steps 309and 310 described in FIG. 3A and steps 319 and 320 described in FIG. 3B.

The incrementing section 816 may increment the number of copying of acorresponding content in the history information 892, if the proposedcopy area is selected and then copied by a user. The incrementingsection 816 may perform step 313 described in FIG. 3A and step 323described in FIG. 3B.

The analyzing section 817 may analyze the information in the historyinformation 892. The analyzing section 817 may perform step 314described in FIG. 3A and step 324 described in FIG. 3B and all stepsdescribed in FIG. 5B.

The detecting section 818 may detect that an original document ismodified.

The modifying section 819 may modify the history information 892 if acontent in the document is modified. If a content in the document ismodified, the modifying section 819 may also similarly modify acorresponding content in the history information. If a position of acontent in the document is changed, the modifying section 819 maycorrespondingly change position information on a corresponding contentin the history information.

With reference now to FIG. 9, FIG. 9 illustrates of an overallfunctional block diagram of a computer system hardware comprising a userdevice and a server which may be used in accordance with the exampleembodiment of the overall flowchart described in FIGS. 4A and 4B.

The user device 901 may correspond to the computer 101 described in FIG.1.

The user device 901 may comprise a reading section 911, an obtainingsection 912, a receiving section 913, a displaying section 914, acopying section 915 and a sending section 916.

The reading section 911 may read, into a memory, a document from a localstorage or storage 991 which can be accessible by the user device 901;or downloads, into the memory, a document from an internet or intranet.

The obtaining section 912 may detect the user operation and, if the useroperation is a predetermined operation for starting the proposal of acopy area in the document, then obtain information on a cursor orpointer position on a document displayed on a screen. The obtainingsection 912 may send the information on a cursor or pointer position tothe server 902. The obtaining section 912 may perform a part of step402, and steps 403 to 404 described in FIG. 4A.

The receiving section 913 may receive, from the server 902, one or moresecond contents comprising the first content associated with the cursoror pointer position. The received one or more contents may be in thepredetermined order.

The displaying section 914 may display, as a copy area, the one or morecontents comprising the content associated with the cursor or pointerposition.

The copying section 915 may copy the content selected by a user to anarea designated by a user.

The sending section 916 may send information on the copied content tothe server 902.

The server 902 may comprise a retrieving section 923, a proposingsection 924, a receiving section 925, an incrementing section 926 and ananalyzing section 927. The server 902 may further comprise a detectingsection 928 and a modifying section 929.

The retrieving section 923 may retrieve, from a history information 992,a plurality of second contents if the position is on a first content inthe document. Each of the second contents comprises the first content.The retrieving section 923 may perform steps 415 to 417 described inFIG. 4B.

The proposing section 924 may propose, as a copy area, one or moresecond contents in the predetermined order among the retrieved secondcontents. The proposing section 924 may send one or more second contentsto the user device 901.

The receiving section 925 may receive the information on the copiedcontent from the user device 901.

The incrementing section 926 may increment the number of copying of acorresponding content in the history information 992, if the server 902receives the information on the copied content from the user device 901.The incrementing section 926 may perform step 423 described in FIG. 4B.

The analyzing section 927 may analyze the information in the historyinformation 992. The analyzing section 927 may perform step 424described in FIG. 4B and all steps described in FIG. 5B.

The detecting section 928 may detect that an original document ismodified.

The modifying section 929 may modify the history information 992 if acontent in the document is modified. If a content in the document ismodified, the modifying section 929 may also similarly modify acorresponding content in the history information. If a position of acontent in the document is changed, the modifying section 929 maycorrespondingly change position information on a corresponding contentin the history information.

The present invention may be a method, a system, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

By the expression “a/one” should be understood as “at least one”.

By the expression “comprise(s)/comprising a/one” should be understood as“comprise(s)/comprising at least one”.

By the expression “comprise(s)/comprising” should be understood as“comprise(s)/comprising at least”.

By the expression “/” should be understood as “and/or”.

The descriptions of the various embodiments of the present disclosurehave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

What is claimed is:
 1. A computer-implemented method for proposing acopy area in a document, the method comprising: obtaining information ona pointer position on a first content on a document displayed on ascreen; retrieving, from a history information, a plurality of secondcontents, each of the second contents comprising the first content,wherein the history information comprises sets of contents, each of thesets comprising a content in the document, which content was copied byone or more users, and position information of this content, the setsranked in a predetermined order; and proposing, as a copy area, one ormore second contents in the predetermined order among the retrievedsecond contents.
 2. The method according to claim 1, wherein theproposal is made by displaying the one or more second contents on thescreen in the predetermined order in response to user operation.
 3. Themethod according to claim 1, wherein when a content in the document ismodified, a corresponding content in the history information is alsosimilarly modified.
 4. The method according to claim 1, wherein when aposition of a content in the document is changed, position informationon a corresponding content in the history information is updatedcorrespondingly.
 5. The method according to claim 1, wherein the historyinformation further comprises: the number of times copied for each ofthe contents in the document; and the ranking is carried out accordingto the number of times copied.
 6. The method according to claim 5,wherein the copying is done by one user.
 7. The method according toclaim 5, wherein the copying is done by multiple users.
 8. The methodaccording to claim 5, wherein the history information further comprises:a score associated with each of the contents in the document; and theranking is carried out according to the score.
 9. The method accordingto claim 8, wherein when the proposed copy area is selected by a user,the number of copying of a corresponding content in the historyinformation is incremented and the score is updated.
 10. The methodaccording to claim 9, wherein the score is calculated from the number oftimes copied and a weight associated with a date on which the copying ofthe content in the document was done.
 11. The method of claim 1, whereina user device carries out obtaining the information, retrieving theplurality of second contents and proposing the one or more secondcontents.
 12. The method of claim 11, wherein the history information isstored in the user device.
 13. The method of claim 11, wherein thehistory information is stored in a server.
 14. The method of claim 11,wherein the history information is stored in a network attached storageconnected to the user device.
 15. The method according to claim 1,wherein the first content is selected from the group consisting of acharacter string, a cell, a photo image, and a moving image.
 16. Themethod according to claim 1, wherein the document is a structureddocument in which tags are used, and wherein the retrieval of theplurality of second contents comprises calculating an order of tags inthe document and the calculated order is used for identifying pluralityof second contents.
 17. The method according to claim 1, wherein thedocument is an unstructured document and wherein the retrieval of theplurality of second contents comprises calculating an order of bytes inthe document and the calculated bytes are used for identifying pluralityof second contents.
 18. The method according to claim 1, wherein thedocument is a spreadsheet and wherein the retrieval of the plurality ofsecond contents comprises calculating cell location in the document andthe calculated cell location is used for identifying plurality of secondcontents.
 19. A computer system for proposing a copy area in a document,the computer system comprising: a memory; and a processor incommunication with the memory, wherein the computer system is configuredto perform a method, the method comprising: obtaining information on apointer position on a first content on a document displayed on a screen;retrieving, from a history information, a plurality of second contents,each of the second contents comprising the first content, wherein thehistory information comprises sets of contents, each of the setscomprising a content in the document, which content was copied by one ormore users, and position information of this content, the sets ranked ina predetermined order; and proposing, as a copy area, one or more secondcontents in the predetermined order among the retrieved second contents.20. A computer program product for proposing a copy area in a document,the computer program product comprising a computer readable storagemedium having program instructions embodied therewith, wherein thecomputer readable storage medium is not a transitory signal per se, theprogram instructions executable by a processor to perform a methodcomprising: obtaining information on a pointer position on a firstcontent on a document displayed on a screen; retrieving, from a historyinformation, a plurality of second contents, each of the second contentscomprising the first content, wherein the history information comprisessets of contents, each of the sets comprising a content in the document,which content was copied by one or more users, and position informationof this content, the sets ranked in a predetermined order; andproposing, as a copy area, one or more second contents in thepredetermined order among the retrieved second contents.